﻿using DFGK_WMS.Model.Dto.LS;
using DFGK_WMS.Model.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DFGK.IService
{
    public interface IVisuallargeScreenService
    {
        /// <summary>
        /// 待办已办任务统计
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="type">1:待办   2:已办</param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        List<ToDoDoneDto> GetToDoDone(int pageIndex, int pageSize, int type, out int totalCount);

        /// <summary>
        /// 月出入移盘统计
        /// </summary>
        /// <returns></returns>
        EntryAndExitTransferStatisticsDto GetAllQty();

        /// <summary>
        /// 获取库存总数
        /// </summary>
        /// <returns></returns>
        InventoryQtyDto GetInventoryQty();

        /// <summary>
        /// 根据质量等级查询
        /// </summary>
        /// <returns></returns>
        List<QualityStateDto> GetQtyByQualityState();

        /// <summary>
        /// 出入库数量统计
        /// </summary>
        /// <param name="StartTime"></param>
        /// <param name="EndTime"></param>
        /// <returns></returns>
        List<AppointDateQtyDto> GetQtyByWork(string StartTime, string EndTime);

        /// <summary>
        /// 按装备大类统计
        /// </summary>
        /// <returns></returns>
        List<MaterialCategoryGroup> GetMaterialCategoryQty();

        /// <summary>
        /// 按器材分类统计
        /// </summary>
        /// <returns></returns>
        List<MaterialGroups> GetMaterialGroupsQty();

        string GetUSBPath();

        /// <summary>
        /// 器材分类统计
        /// </summary>
        /// <returns></returns>
        List<MaterialTypeCountDto> GetMaterialTypeCount();


        /// <summary>
        /// 装备入库
        /// </summary>
        /// <returns></returns>
        List<EquipmentReceivingDto> GetEquipmentReceiving();

        /// <summary>
        /// 装备出库
        /// </summary>
        /// <returns></returns>
        List<EquipmentShippingDto> GetEquipmentShipping();

        /// <summary>
        /// 今日数据
        /// </summary>
        /// <returns></returns>
        List<TodayDataDto> GetTodayData();

        /// <summary>
        /// 获取近7天的数据
        /// </summary>
        /// <returns></returns>
        List<TodayDataDto> GetSevenData();

        /// <summary>
        /// 获取近31天的数据
        /// </summary>
        /// <returns></returns>
        List<TodayDataDto> GetThirtyOneData();

        /// <summary>
        /// 库房相关
        /// </summary>
        /// <returns></returns>
        List<WarehouseRelatedDto> GetWarehouseMsg();

        /// <summary>
        /// SKU
        /// </summary>
        /// <returns></returns>
        List<SKUDto> GetSKUMsg();

        /// <summary>
        /// 仓库利用率
        /// </summary>
        /// <returns></returns>
        List<WarehoustUtilizationRateDto> GetWarehoustUtilization();

        /// <summary>
        /// 近30天仓库单量走势
        /// </summary>
        /// <returns></returns>
        List<WarehouseTrend> GetWarehouseTrend();

        /// <summary>
        /// 近30天仓库出货量
        /// </summary>
        /// <returns></returns>
        List<WarehouseShippingDto> GetWarehouseShippingQty();

        /// <summary>
        /// 实时库存
        /// </summary>
        /// <returns></returns>
        List<InventoryDto> GetInventory();
    }
}
